草庐IT

Java Generics - 类本身的子类?

全部标签

java - HIbernate 加载子类和类

我正在使用Hibernate连接到我的数据库。我的应用程序中有一个继承结构。问题是,当我执行“来自动物”之类的查询时,它会为类动物、其子类以及动物及其子类的所有关联执行左外连接。我该如何避免这种情况。我只想在我的条件查询中通过fetchmode指定数据时才加载数据? 最佳答案 是的,Hibernate支持多态查询。来自文档:14.8.PolymorphicqueriesAquerylike:fromCatascatreturnsinstancesnotonlyofCat,butalsoofsubclasseslikeDomestic

java - Java中的向上转换是否隐藏了子类的方法和字段?

在我正在编写的程序中,我有一个类RestrictedUser和类User派生自RestrictedUser。我正在尝试通过转换为RestrictedUser来隐藏用户特定的方法,但是当我进行转换时,用户方法仍然可用。此外,当我运行调试器时,变量的类型显示为User。RestrictedUserrestricted=regularUser;Java中的向上转换是否隐藏了子类的方法和字段,还是我做错了什么?有解决方法吗?谢谢 最佳答案 如果您尝试运行此代码:Useruser=newUser(...);RestrictedUserrest

java - 为什么 Hibernate 有时会加载错误子类的实例?

我们有一个我们无法解释的关于hibernate的奇怪问题。我们有什么:一个抽象类和它的两个子类。让我们称他们为A、SubA1、SubA2我们有另一个抽象类和一些子类。让B、SubB1、SubB2调用。SubB1和A之间存在多对一关系。A类和B类的hibernate映射如下所示:a和b现在的问题是:有时hibernate通过加载SubB1的项目将SubA2的项目加载为SubA1的实例,但并非所有项目都会投错,只有少数项目,而且每次都不是相同的项目。也许有人可以解释,出了什么问题或我们的hibernate映射有什么问题。提前谢谢你。附言。此问题发生在:JDK1.7.71甲骨文12ghibe

java - 为什么父类中的@PostConstruct 方法在子类中的@PostConstruct 方法之后执行?

我对下面代码的结果有点困惑。父Controller:@ControllerpublicabstractclassParentController{@PostConstructpublicvoidinit(){System.out.println("Parent-----PostConstruct");}publicParentController(){System.out.println("Parent-----constructor");}}子Controller:@ControllerpublicclassChildControllerextendsParentController

java - 使用相同的连接表引用关联实体的子类时,具有该名称 [user_address] 的表已与实体关联

使用SpringBootstarter,我正在尝试创建一个简单的示例项目,该项目涉及具有多个地址字段的用户。我正在尝试使用@DiscriminatorColumn和@DiscriminatorValue来区分用户可能拥有的不同类型的地址。这是我项目中表格的缩略示例:CREATETABLEuser(idINTAUTO_INCREMENT);CREATETABLEuser_address(user_idINT,address_idINT);CREATETABLEaddress(idINTAUTO_INCREMENT,TYPEVARCHAR(31));这是我想加入的类(class):@Ent

具有泛型方法和子类的 Java Collection

我有以下集合类,它包含一个方法,用于对映射中的元素进行分组,其中每个值都具有调用它的类的类型classTaskCollectionextendsHashSet{Map>groupBy(FunctiongroupingFunction){returnthis.stream().collect(Collectors.groupingBy(groupingFunction,Collectors.toCollection(this.collectionConstructor())));}Supplier>collectionConstructor(){returnTaskCollection:

java - 访问父/子类加载器之间的包私有(private)元素

在Java应用程序中,我声明了两个类,一个类(One)在ClassLoaderA中声明,另一个类(Two)在ClassLoaderB中声明。ClassLoaderA是B的parent。这两个类都具有相同的包(即:org.test)。虽然A是B的父类加载器,但我似乎无法从Two事件访问One的包私有(private)方法或变量,我得到一个IllegalAccessError异常。我了解包私有(private)可访问性基于包名称和类加载器。有没有办法重新关联One和Two,以便Two可以访问One的封装私有(private)元素?下面是证明这一点的测试:packageorg.test;pu

java - 如何绑定(bind)子类的类类型

我有这门课:publicabstractclassAddressable{abstractvoidhardEquals(Tt);}方法hardEquals(Tt)没有像我想要的那样有界。我想要的是将T绑定(bind)为this的同一类。换句话说,当我使用具体类MyAddressable扩展类Addressable时,我希望方法hardEquals()具有签名:voidhardEquals(MyAddressablet);为了完整性:publicclassMyAddressableextendsAddressable{voidhardEquals(MyAddressablet);}是否有

java - 我怎样才能避免在子类中创建无用的传递构造函数只是为了将参数传递给 "super()"?

在Java中,据我所知,子类不会继承具有参数的构造函数。例如publicclassParent{publicParent(intx){DoSomethingWithX(x);}}publicclassChildextendsParent{//Compilefailswith"ImplicitsuperconstructorParent()isundefined//fordefaultconstructor.Mustdefineanexplicitconstructor}修复它的唯一方法是在Child类中创建一个无用的传递构造函数:publicclassChildextendsParen

java - ModelMapper:根据子类选择映射

长话短说我想以从AbstractParent映射到AbstractParentDTO的方式使用modelMapper,然后在ModelMapper-Config中为每个子类调用特定的映射器,然后跳过其余的(抽象类)映射。这怎么可能?这是正确的方法吗?是否存在设计缺陷?我有什么:父实体:@Inheritance(strategy=InheritanceType.JOINED)@DiscriminatorColumn(name="type")publicabstractclassParent{//somemorefields}一个子实体://BasicLombokAnnotations@D